﻿#pragma once

#include <unordered_map>
#include "Context/RenderContext.h"

class VideoProgram
{
public:
	VideoProgram();
	~VideoProgram();

	/** 渲染窗口 */
	void draw(std::shared_ptr<VideoBuffer> videoBuffer, void* winId);

	/** 获取渲染上下文 */
	RenderContext* contextForWindId(void* winId);

	/** 移除释放渲染上下文 */
	void removeWinId(void* winId);

	/** 清空所有渲染上下文 */
	void clearWinId();

private:
	/** 渲染上下文集合 */
	std::unordered_map<void*, std::shared_ptr<RenderContext>> _renders;
};